// ts中的类型兼容
// 在结构化类型系统中，如果两个对象具有相同的形状，则认为它们属于同一类型，这种说法并不准确
// 更准确的说法：对于对象类型来说，y 的成员至少与 x 相同，则 x 兼容 y（成员多的可以赋值给少的）。
class Point {
  x: number
  y: number
}

class Point3D {
  x: number
  y: number
  z: number
}

// 这里类型声明是point，实际new的却是point3d
// 这里就是类型兼容，在这里point3d的成员至少与point相同
// 就是成员多的可以赋值给成员少的
// 除了类之外，接口和函数也可以兼容
const p: Point = new Point3D()


